home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / source / units / joystick.asm < prev    next >
Encoding:
Assembly Source File  |  1992-06-28  |  2.1 KB  |  58 lines

  1. PROGRAM JoyStick;
  2.  
  3.  USES
  4.    Crt;
  5.  
  6.  VAR
  7.    Ox,Oy,Ok1,Ok2:INTEGER;
  8.  
  9.  PROCEDURE Stick(VAR X,Y,K1,K2:INTEGER);
  10.   BEGIN INLINE
  11.    ($BA/$01/$02/   { MOV   DX,0201H     }  {1=pressed  0=not pressed}
  12.     $EC/           { IN    AL,DX        }
  13.     $A8/$03/       { TEST  AL,03H       }  { 0CH For joystiCk #2 }
  14.     $75/$FB/       { JNZ   $-3          }
  15.     $B9/$2C/$01/   { MOV   CX,300       }
  16.     $FA/           { CLI                }
  17.     $EE/           { OUT   DX,AL        }
  18.     $EC/           { IN    AL,DX        }
  19.     $A8/$01/       { TEST  AL,01H       }  { 04H For joystiCk #2 }
  20.     $E0/$FB/       { LOOPNZ $-3         }
  21.     $BB/$2C/$01/   { MOV   BX,300       }
  22.     $2B/$D9/       { SUB   BX,CX        }
  23.     $C4/$BE/x/     { LES   DI,SS:x[BP]  }
  24.     $26/$89/$1D/   { MOV   ES:[DI],BX   }
  25.     $2B/$DB/       { SUB   BX,BX        }
  26.     $A8/$10/       { TEST  AL,10H       }  { 40H For joystiCk #2 }
  27.     $75/$03/       { JNZ   $+5          }
  28.     $83/$C3/$01/   { ADD   BX,1         }
  29.     $C4/$BE/k1/    { LES   DI,SS:k1[BP] }
  30.     $26/$89/$1D/   { MOV   ES:[DI],BX   }
  31.     $2B/$DB/       { SUB   BX,BX        }
  32.     $A8/$20/       { TEST  AL,20H       }  { 80H For joystiCk #2 }
  33.     $75/$03/       { JNZ   $+5          }
  34.     $83/$C3/$01/   { ADD   BX,1         }
  35.     $C4/$BE/k2/    { LES   DI,SS:k2[BP] }
  36.     $26/$89/$1D/   { MOV   ES:[DI],BX   }
  37.     $EC/           { IN    AL,DX        }
  38.     $A8/$03/       { TEST  AL,03H       }  { 0CH For joystiCk #2 }
  39.     $75/$FB/       { JNZ   $-3          }
  40.     $B9/$2C/$01/   { MOV   CX,300       }
  41.     $EE/           { OUT   DX,AL        }
  42.     $EC/           { IN    AL,DX        }
  43.     $A8/$02/       { TEST  AL,02H       }  { 08H For joystiCk #2 }
  44.     $E0/$FB/       { LOOPNZ $-3         }
  45.     $FB/           { STI                }
  46.     $BB/$2C/$01/   { MOV   BX,300       }
  47.     $2B/$D9/       { SUB   BX,CX        }
  48.     $C4/$BE/y/     { LES   DI,SS:y[BP]  }
  49.     $26/$89/$1D);  { MOV   ES:[DI],BX   }
  50.   END;
  51.  
  52.   BEGIN
  53.     TextColor(WhitE); TextBackGround(Blue); ClrScr;
  54.     REPEAT
  55.       Stick(Ox,Oy,Ok1,Ok2);
  56.       GotoXY(1,1); WRITE(Ox,'--',Oy,'->',Ok1,'--',Ok2);
  57.     UNTIL KeyPressed;
  58.   END.